//   Copyright 2012,2013 Vaughn Vernon
//
//   Licensed under the Apache License, Version 2.0 (the "License");
//   you may not use this file except in compliance with the License.
//   You may obtain a copy of the License at
//
//       http://www.apache.org/licenses/LICENSE-2.0
//
//   Unless required by applicable law or agreed to in writing, software
//   distributed under the License is distributed on an "AS IS" BASIS,
//   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
//   See the License for the specific language governing permissions and
//   limitations under the License.

package com.saasovation.agilepm.domain.model.discussion;

/**
 * 讨论可用性枚举
 * @author learn
 */
public enum DiscussionAvailability  {
    /**
     * 添加到未启用
     */
    ADD_ON_NOT_ENABLED {
        /**
         * 是添加不可用
         * @return true
         */
        @Override
        public boolean isAddOnNotAvailable() {
            return true;
        }
    },

    /**
     * 已经失败
     */
    FAILED {
        /**
         * 返回失败的
         * @return true
         */
        @Override
        public boolean isFailed() {
            return true;
        }
    },

    /**
     * 未请求过的
     */
    NOT_REQUESTED {
        /**
         * 是不请求
         * @return true
         */
        @Override
        public boolean isNotRequested() {
            return true;
        }
    },

    /**
     * 已经请求
     */
    REQUESTED {
        /**
         * 请求好了
         * @return true
         */
        @Override
        public boolean isRequested() {
            return true;
        }
    },

    /**
     * 已经准备就绪
     */
    READY {
        /**
         * 准备好了
         * @return true
         */
        @Override
        public boolean isReady() {
            return true;
        }
    };

    /**
     * 是添加不可用
     * @return false(初始化)
     */
    public boolean isAddOnNotAvailable() {
        return false;
    }

    /**
     * 是失败了
     * @return false(初始化)
     */
    public boolean isFailed() {
        return false;
    }
    /**
     * 是否没请求
     * @return false(初始化)
     */
    public boolean isNotRequested() {
        return false;
    }
    /**
     * 是否准备好
     * @return false(初始化)
     */
    public boolean isReady() {
        return false;
    }
    /**
     * 已经请求就绪
     * @return false(初始化)
     */
    public boolean isRequested() {
        return false;
    }
}
